課程資訊
課程名稱
虛擬機器
Virtual Machines 
開課學期
102-2 
授課對象
電機資訊學院  資訊網路與多媒體研究所  
授課教師
徐慰中 
課號
CSIE5310 
課程識別碼
922 U4140 
班次
 
學分
全/半年
半年 
必/選修
選修 
上課時間
星期四6,7,8(13:20~16:20) 
上課地點
資111 
備註
總人數上限:50人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1022CSIE5310_VM 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

虛擬化技術在各種計算機系統領域都被用來創新解決問題的方法。在支援作業系統(OS) 上,虛擬機器監督器(VM Monitor), 譬如以VMware, Xen, 或KVM為基礎,能讓一套硬體系統上同時執行多個不同的OS,大量提昇伺服器硬體系統的使用效率。在支援程式語言(Programming Language) 上,高階語言虛擬機,譬如JVM and DVM有效解決程式移植的問題。在支援計算機架構(Computer Architecture) 上,Process VM,譬如 Virtual PC或IA32-EL讓不相容的執行碼可以跨越平台使用。這些虛擬機所使用的原理和技術,被認為是計算機領域的硬體(Hardware), 軟體(Software), 應用(Application) 之外的第四個應具備的學科訓練。課程內容包含程序虛擬機(Process Virtual Machines), 高階語言虛擬機(High-level Language Virtual Machines) ,及系統虛擬機(System Virtual Machines) ,以及虛擬化技術在各領域的創新應用。 

課程目標
本課程的設計專注在讓學生了解虛擬化基本的原理,廣泛的應用,實現的方法, 和效能的考量,以及虛擬化技術在各領域的創新應用。本課程除了基本原理和實作技術,也搭配業界最新開發系統的實例。 
課程要求
Computer Architecture or Computer Organization
Operating System
Compiler
System Programming
 
預期每週課後學習時數
 
Office Hours
 
指定閱讀
教科書
Selected papers from OSDI, VEE, ISCA, Micro, ASPLOS, CGO, and Usenix conferences 
參考書目
教科書:
書名:Virtual Machines: versatile platforms for systems and processes,
作者: James Smith and Ravi Nair
出版社: Morgan Kaufmann
出版年: 2005 
評量方式
(僅供參考)
   
課程進度
週次
日期
單元主題
第1週
2/20  Chapter 1: Introduction to Virtual Machines 
第2週
2/27  Chapter 1 Review and Chapter 2 
第3週
3/06  Emulation: Dynamic Binary Translation  
第5週
3/20  Process Virtual Machines:
Memory architecture, exception emulation, OS emulation 
第6週
3/27  Process Virtual Machines 
第7週
4/03  Spring Break 
第8週
4/10  Dynamic Binary Optimization 
第9週
4/17  Mid-term Exams 
第10週
04/24/2014  Midterm Exam discussion and Chapter 4 (trace, superblock, speculative code motion) 
第11週
4/29  System Virtual Machines:
CPU virtualizations 
第12週
5/08  System Virtual Machines: CPU,
Memory and I/O virtualizations 
第13週
5/15  I/O Virtualization 
第14週
5/22  System Virtual Machines:
Case study, ARM/KVM implementation
Homework Assignment#2 Tutorial 
第15週
5/29  System Virtual Machines: Multi-processor virtualizations and GPGPU virtualizations 
第16週
06/05  Paper Presentations  
第17週
6/09 evening  Paper presentations 
第18週
6/09  Paper presentations 
第3-2週
3/06  Homework#1 source code tar file 
第3-2週
  Chapter 2 Review 
第4-1週
3/13  Process Virtual Machines:
compatibility, state mapping, instruction emulation 
第5-1週
  Chapter 3 Review 
第7-1週
4/03/2014  Dynamic Binary Optimization reference papers ADORE 
第7-2週
4/03/2014  Dynamic Binary Optimization reference Paper (Dynamic Helper Thread) 
第11-2週
05/03/2014  Homework Assignment#2 
第4-00週
03/13  references papers (QEMU) 
第4-01週
03/13  reference papers (HQEMU) 
第4-02週
03/13  reference papers (LLBT)